package org.example.arraylist01;

import java.util.ArrayList;

/**
 * ArrayList<E>中的方法:
 *    public boolean add(E e):添加元素到列表末尾
 *    public void add(int index, E element):将指定元素添加到指定索引位置,该位置原有的元素及之后元素会后移
 *    public E get(int index):将指定索引位置的元素取出
 *    public E set(int index, E element):将指定位置的元素设置成新的值,并且返回该索引原有的值
 *    public E remove(int index):将指定索引位置的元素删除,并且返回要删除的元素
 */
public class ArrayListDemo01 {
    public static void main(String[] args) {
        //method01();
        //method02();
        //method03();
        //method04();
        ArrayList<String> al = new ArrayList<>();
        al.add("无忌");
        al.add("敏敏");
        al.add("芷若");
        System.out.println(al);

        String str = al.remove(2);

        System.out.println(str);
        System.out.println(al);
    }

    private static void method04() {
        ArrayList<String> al = new ArrayList<>();
        al.add("无忌");
        al.add("敏敏");
        al.add("芷若");
        System.out.println(al);

        String str = al.set(1, "灭绝师太");//返回的是1索引旧的元素

        System.out.println(str);//敏敏
        System.out.println(al);//[无忌, 灭绝师太, 芷若]
    }

    private static void method03() {
        ArrayList<String> al = new ArrayList<>();
        al.add("无忌");
        al.add("敏敏");
        al.add("芷若");
        String str = al.get(1);//敏敏
        System.out.println(str);
        System.out.println(al.get(2));
    }

    private static void method02() {
        ArrayList<String> al = new ArrayList<>();
        al.add("abc");
        al.add("def");
        System.out.println(al);//[abc, def]

        al.add(1, "mk");
        System.out.println(al);//[abc, mk, def]

        al.add(0, "ll");
        System.out.println(al);//[ll, abc, mk, def]
    }

    private static void method01() {
        ArrayList<String> al = new ArrayList<>();
        al.add("abc");
        al.add("def");
        al.add("ghk");
        System.out.println(al);
    }
}
